// 指令显示实体类：用于显示游戏中的操作指令，支持淡入和上浮动画效果
class Instruction extends Entity {

    // 构造函数：初始化指令显示
    // @param instruction: 要显示的指令文本
    constructor(instruction) {
        super();
        this.instruction = instruction;
        // 用于检测指令是否变化
        this.lastRenderedInstruction = null;
    }

    // 渲染指令
    // @param camera: 当前相机实体
    render(camera) {
        // 设置渲染位置
        ctx.translate(this.x, this.y);

        // 设置文本样式
        ctx.fillStyle = '#000';
        ctx.textAlign = nomangle('center');
        ctx.textBaseline = nomangle('middle');
        ctx.font = nomangle('bold 48pt Impact');

        // 如果指令发生变化，重置动画
        if (this.lastRenderedInstruction !== this.instruction) {
            this.age = 0;
            this.lastRenderedInstruction = this.instruction;
        }

        // 应用淡入效果（0.5秒内从0到0.3的透明度）
        ctx.globalAlpha = interpolate(0, 0.3, this.age / 0.5);
        // 应用上浮动画（0.5秒内从-25到0的Y轴位移）
        ctx.translate(0, interpolate(-25, 0, this.age / 0.5));

        // 渲染指令文本
        ctx.fillText(this.instruction, 0, 25);
    }
}
